image/svg+xmlAluno:Stéfany Maria Cavalcante BrandãoATIVIDADE PRÁTICA:LÓGICA DE PROGRAMAÇÃO E ALGORITMOSANO2023
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.1QUESTÃO 1de 4(25 pontos)CONTEÚDO ATÉ AULA03Enunciado: Imagina-se que você é um dos programadores responsáveis pelaconstrução de app de vendas para uma determinada empresa X que vende em atacado.Uma das estratégias de vendas dessa empresa X é dar desconto maiores por unidade conforme a tabela abaixo:QuantidadesDescontoAté 90%na unidadeEntre 10 e 995%na unidadeEntre 100 e 99910%na unidadeDe 1000 para mais15%na unidadeElabore um programa em Python que:1.Entre com o valor unitário do produto (Lembrar que número decimal é feito com ponto e não vírgula);2.Entre com a quantidade desse produto;3.O programa deve retornar o valor total sem desconto;4.O programa deve retornar o valor total após o desconto;5.Deve-se utilizar estruturas if, elif e else(EXIGÊNCIA1 de 1);6.Colocar um exemplo de SAIDA DE CONSOLE decompra de mais de 10 und.(para mostrar que o desconto foi aplicado)Segue o exemplo de SAIDA DE CONSOLE:OBS: Para os números decimais ficarem com somente duas casas depois da vírgula utilize{:.2f). Exemplo:print('O valor sem desconto foi: R$ {:.2f}' .format(sub_total))Apresentação do Código (FORMATO TEXTO)print('Bem vindo a Loja da Stéfany Maria Cavalcante Brandão!') #identificador pessoalprint('O valor do Produto S é de 12.00')print('Temos desconto conforme a quantidade comprada:')print('Até 9, o desconto é de 0% na unidade')print('Entre 10 e 99, o desconto é de 5% na unidade')print('Entre 100 e 999, o desconto é de 10% na unidade')print('Entre 1000 para mais, o desconto é de 15% na unidade')preco= float(input('Valor do produto?'))qtd= int(input('Entre com a quantidade do produto:'))pagamentoinicial= preco * qtdif (qtd <= 9):pagamentofinal = pagamentoinicial #Até 9, o desconto é de 0% na Colocar o seu nome
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.2unidadeelif (qtd >=10 and qtd <=99):pagamentofinal = pagamentoinicial -pagamentoinicial * 0.05 #Entre 10 e 99, o desconto é de 5% na unidadeelif (qtd >=100 and qtd <=999):pagamentofinal= pagamentoinicial -pagamentoinicial * 0.10 #Entre 100 e 999, o desconto é de 10% na unidadeelse:pagamentofinal = pagamentoinicial -pagamentoinicial * 0.15 #Entre 1000 para mais, o desconto é de 15% na unidadeprint('O valor a pagar sem desconto é de: {:.2f}'.format(pagamentoinicial))print('O valor a pagar com desconto é de: {:.2f}'.format(pagamentofinal))Saída do Console(FORMATO IMAGEMPRINT DA TELA)
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.3QUESTÃO 2de 4(25 pontos)CONTEÚDO ATÉ AULA 04Enunciado: Você e sua equipe de programadores foram contratados para desenvolver um app de vendas para uma lanchonete. Você ficou com a parte de desenvolver a interface do cliente para retirada do produto.A lanchonete possui seguinte tabela de produtos listados comsua descrição,códigos e valores:CódigoDescriçãoValor(R$)100Cachorro-Quente9,00101Cachorro-Quente Duplo11,00102X-Egg12,00103X-Salada13,00104X-Bacon14,00105X-Tudo17,00200Refrigerante Lata5,00201Chá Gelado4,00Elabore um programa em Python que:1.Entre com o código do produto desejado;2.Pergunte se o cliente quer pedir mais algumacoisa(sesim repetir o passo item 2. Caso contrário ir para próximo passo);3.Encerre a conta do cliente com o valor total;4.Deve-se utilizar estruturas if, elif e else(EXIGÊNCIA 1de 3);5.Se a pessoa digitar um NÚMERO diferente dos da tabela printar na tela: ‘opção inválida’ e voltar para o menu (EXIGÊNCIA 2de 3);6.Deve-se utilizar while, break, continue (EXIGÊNCIA 3de 3);o(DICA: utilizar o continue dentro else queverifica a opção inválida)o(DICA: utilizar o break dentro elif que verifica a opção sair)7.Colocar um exemplo de SAIDA DE CONSOLE com dois pedidos8.Colocar um exemplo de SAIDA DE CONSOLE com erro ao digitar no pedidoSegue o exemplo de SAIDA DE CONSOLE:
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.4Figura: Exemplo de programa com 2itens pedido(Sendo que um deles teve uma tentativa com erro) e nofinal o valor final é apresentado.Apresentação do Código(FORMATO TEXTO)print('Seja bem-vindo(s) a Lanchonete da Stéfany Maria Cavalcante Brandão') #identificador pessoal.print('\n**Produtos da Lanchonete**\n')print('| Código | Descrição | Valor (R$) |')print('| 100 | Cachorro-Quente | R$9,00 |')print('| 101 | Cachorro-Quente Duplo | R$11,00 |')print('| 102 | X-Egg | R$12,00 |')print('| 103 | X-Salada | R$13,00 |')print('| 104 | X-Bacon | R$14,00 |')print('| 105 | X-Tudo | R$17,00 |')print('| 200 | Refrigerente Lata | R$5,00 |')print('| 201 | Chá Gelado | R$4,00 |\n')soma = 0
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.5while True:código = input('Coloque o código do produto que deseja comprar:') #Código do produto desejado.if (código == '100'):Descrição = 'Cachorro-Quente'soma += 9elif (código == '101'):Descrição = 'Cachorro-Quente Duplo'soma += 11elif (código == '102'):Descrição = 'X-Egg'soma += 12elif (código == '103'):Descrição = 'X-Salada'soma += 13elif (código == '104'):Descrição = 'X-Bacon'soma += 14elif (código == '105'):Descrição = 'X-Tudo'soma += 17elif (código == '200'):Descrição = 'Refrigerente Lata'soma += 5elif (código == '201'):Descrição = 'Chá Gelado'soma += 4else:print('Código inexistente. Digite outro código:') #Se o código do produto for inválido.continueprint('Você pediu {}.' .format(Descrição))print('O valor total a ser pago é R${:.2f}'.format(soma))resposta = input('Deseja pedir mais alguma coisa? Digite SIM para incluir e NÃO para finalizar:')if (resposta == 'SIM'):continueelse:print('O valor total da compra é: R${:.2f}' .format(soma))break
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.6Saída do Console(FORMATO IMAGEMPRINT DA TELA)QUESTÃO 3de 4(25 pontos)CONTEÚDO ATÉ AULA 05Enunciado: Imagina-se que você e sua equipe foram contratados por uma empresa de logística que acabou de entrar no ramo. Essa empresa trabalha com encomendas de pequeno emédioportee opera somente entre 3 cidades.O valor que a empresa cobra por objeto é dado pela seguinte equação:풕풐풕풂풍=풅풊풎풆풏풔õ풆풔풑풆풔풐풓풐풕풂que você e sua equipeEm que cada uma das variáveis que compõe o preço total é quantizadada seguinte maneira:Quadro 1: Dimensões versus ValorQuadro 2: Peso versus multiplicador
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.7dimensões (cm³)valor(R$)volume<1000101000<= volume <100002010000 <= volume < 300003030000 <= volume < 10000050volume>= 100000Não é aceitopeso(kg)multiplicadorpeso <=0.110.1 <=peso < 11.51<=peso < 10210 <=peso < 303peso =>30Não é aceitoQuadro 3: Rota versus multiplicadorrotamultiplicadorRS -De Rio de Janeiro até São Paulo1SR -De São Paulo até Rio de Janeiro1BS -De Brasília até São Paulo1.2SB -De São Paulo até Brasília1.2BR -De Brasília até Rio de Janeiro1.5RB -Rio de Janeiro até Brasília1.5Obs.: Pode-se mudar o nome das cidades e siglas. Utilizando 3 cidades está ótimoElabore um programa em Python que:1.Pergunte a altura(em cm), comprimento(em cm)e largura(em cm)do objeto. Se digitar um valor não numérico e/ou as dimensões passarem do limite aceito repetir a pergunta;2.Pergunte o peso do objeto (em kg). Se digitar um valor não numérico e/ou o peso passar do limite aceito repetir a pergunta;3.Pergunte a rota do objeto. Se digitar uma opção que não esteja na tabelarepetir a pergunta;4.Encerre o total a ser pago com base na equação desse enunciado;5.Deve-se codificar uma função dimensoesObjeto (EXIGÊNCIA 1de 3);oDentro da função perguntar altura do objeto (em cm);oDentro da função perguntar o comprimento do objeto (em cm);oDentro da função perguntar a largura do objeto (em cm)oCalcular o volume(em cm)da caixa p/aobjeto (altura*largura*comprimento);oDeve-se ter try/except para o caso dousuário digitar um valor não numérico;oDeve-se retornar o valor em (RS) conforme a Quadro 16.Deve-se codificar uma função pesoObjeto (EXIGÊNCIA 2de 3);oDentro da função perguntar pesodo objeto (em kg);oDeve-se ter um try/exceptpara o caso de o usuário digitar um valor não numérico;oDeve-se retornar o multiplicador conforme o Quadro 27.Deve-se codificar uma função rotaObjeto (EXIGÊNCIA 3de 3);oDentro da função perguntar a rota do objeto desejada (Sugestão: utilizeas siglas parafacilitar os testes);oOBS: PODE MUDAR O NOME DAS CIDADES E SUAS SIGLASoDeve-se retornar o multiplicador conforme o Quadro 38.Colocar um exemplo deSAIDA DE CONSOLEuma encomenda com peso, dimensões e rota válidos
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.89.Colocar um exemplo de SAIDA DE CONSOLE com o tratamento de erro quando digitado um valor não numéricoé digitado no campo peso ou dimensões)Segue o exemplo de SAIDA DE CONSOLE:Figura: Exemplo de programa com tratamento de valor e erro de digitaçãoApresentação do Código(FORMATO TEXTO)print('Bem vindo a Companhia de Logística da Stéfany Maria Cavalcante Brandão') #identificador pessoalprint('Tabela de valores:')print('| Dimensões cm³ | Valor (R$) | | Peso (kg) |Multiplicador| | Rota |Multiplicador|')print('| volume < 1000 | 10 | | peso <= 0.1| 1 | |GS -Goiânia até São Paulo | 1 |')print('|1000 <= volume < 10000 | 20 | |0.1 <= peso < 1 | 1.5 | |SG -São Paulo até Goiânia | 1 Colocar o seu nome
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.9|')print('|10000 <= volume < 30000 | 30 | | 1 <= peso < 10 | 2 | |GB -Goiânia até Brasília | 1.2 |')print('|30000 <= volume < 100000 | 50 | | 10 <= peso < 30 | 3 | |BG -Brasília até Goiânia | 1.2 |')print('| volume >= 100000 |Não é aceito| | peso => 30 | Não é aceito| |GR -Goiânia até Rio de Janeiro| 1.5 |')print('|---------------------------------------------------------------------------| |RG -Rio de Janeiro até Goiânia| 1.5 |')print('|---------------------------------------------------------------------------------------------------------------------------|')def dimensoesObjeto(): #Dimensões do objetowhile True:try:dimensao1 = int(input('Digite a altura do objeto em cm:'))dimensao2 = int(input('Digite o comprimento do objeto em cm:'))dimensao3 = int(input('Digite a largura do objeto em cm:'))multiplicador = float(dimensao1 * dimensao2 * dimensao3)x = multiplicadorprint('Volume do objeto é cm³:{}'.format(x))if(x <= 1000):return 10elif(x >= 1001) and (x < 10000):return 20elif(x >= 10001) and (x < 30000):return 30elif(x >= 30001) and (x < 100000):return 50else:print('Objeto excedeu o limite permitido. Digite novamente;')continueexcept ValueError:print('Você digitou algo não númerico. Por favor tente novamente:')continuedef pesoObjeto(): #Peso do Objetowhile True:try:peso =float(input('Digite o peso do objeto em kg:'))y = peso
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.10if(y <= 0.1):return 1elif(y <= 1) and (y >= 0.11):return 1.5elif(y <= 10) and (y >= 1.10):return 2elif(y <= 30) and (y >= 10.1):return 3else:print('Objeto excedeu o peso. Digite novamente:')continueexcept ValueError:print('Você digitou o peso do objeto com um valor não numérico. Entre com o peso novamente:')continuedef rotaObjeto(): #rota do objetowhile True:try:rota = (input('Selecione a rota: \nGS -Goiânia até São Paulo\nSG -São Paulo até Goiânia\nGB -Goiânia até Brasília\nBG-Brasília até Goiânia\nGR -Goiânia até Rio de Janeiro\nRG -Rio de Janeiro até Goiânia\n>>'))r = rotaif(r == 'GS'):return 1elif(r == 'SG'):return 1elif(r == 'GB'):return 1.2elif(r == 'BG'):return 1.2elif (r == 'GR'):return 1.5elif (r == 'RG'):return 1.5else:print('Essa rota não existe. Digite novamente:')continueexcept ValueError:print('Essa rota não existe. Digite novamente:')continuedimensao = dimensoesObjeto()peso = pesoObjeto()rota = rotaObjeto()total = dimensao*peso*rota #calculo finalprint('O total a pagar pelo objeto é R$:{:.2f}'.format(total))
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.11Saída do Console(FORMATO IMAGEMPRINT DA TELA)
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.12QUESTÃO 4 de 4 (25pontos)CONTEÚDO ATÉ AULA 06Enunciado: Imagina-se que você está desenvolvendo um softwarede controle de estoquepara uma bicicletaria. Este software deve ter o seguinte menue opções:1.CadastrarPeça2.Consultar Peça1)Consultar Todasas Peças2)ConsultaPeças porCódigo3)Consulta Peças porFabricante4)Retornar 3.Remover Peça4.SairElabore um programa em Python que:1.Deve-se codificar uma função cadastrarPeca(código)(EXIGÊNCIA 1);oEssa função recebe como parâmetro um código exclusivo para cada peçacadastrado (DICA: utilize um contadorcomo parâmetro) oDentro da função perguntar o nome da peça;oDentro da função perguntar o fabricante da peça;oDentro da função perguntar o valor da peçaoCada peça cadastrada deve ter os seus dados armazenados num DICIONÁRIO(DICA: Conferir material escrito da p. 22 até p24da AULA 06)2.Deve-se codificar uma função consultarPeca(EXIGÊNCIA 2);oDentro da função ter um menu com as seguintes opções:Consultar Todas as PeçasConsultar Peças por CódigoConsultar Peças por FabricanteRetornar3.Deve-se codificar uma função chamada removerPeca(EXIGÊNCIA 3);oDentro da função perguntar qual o código do produto que se deseja remover do cadastro(da lista de dicionário)4.Colocar um exemplo de SAIDA DO CONSOLEcom o cadastrode 3 (ou mais) peças. Sendo que2 delas do mesmo fabricante ver figura 15.Colocar um exemplo de SAIDA DO CONSOLEcom a consulta a todas as peças cadastradas ver figura 26.Colocar um exemplo de SAIDA DO CONSOLE com uma consulta por códigover figura 37.Colocar um exemplo de SAIDA DO CONSOLE com uma consulta por fabricantever figura 48.Colocar um exemplo de SAIDA DO CONSOLE ao remover um cadastro e mostrando depois todos os cadastrosver figura 5Segue osexemplosde SAIDA DE CONSOLE:
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.13Figura1: Exemplo de Cadastrarde três peças. Perceba que 2 delas tem o mesmo fabricante.
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.14Figura 2: Exemplo de Consulta Todas as Peças.
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.15Figura 3: Exemplo de Consultar por Código.
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.16Figura 4: Exemplo de Consultar Peças por Fabricante
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.17Figura 5: Exemplo de Remover Peça do cadastro e depois Consultar Todas as Peças. Veja que a peça de código 1 foi removida e não aparece mais no sistema.
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.18Apresentação do Código(FORMATO TEXTO)controleEstoques = [] #As peças serão adicionadas pelo usuário.#Cadastrando a Peçadef cadastrarPeca(codigo):print('\n* Cadastrando a Peça * \n')print('O Código da peça a ser cadastrada é: {}'.format(codigo))peca = input('Digite o nome da peça: ')fabricante = input('Digite o fabricante da peça: ')valor = float(input('Digite o valor (R$) da peça: '))dicionarioEstoque = {'código': codigo,'peça': peca,'fabricante': fabricante,'valor': valor}controleEstoques.append(dicionarioEstoque.copy())#Consultando a Peçadef consultarPeca():while True:try:print('\n* Consultando a Peça * ')consultP = int(input('\nEscolha a opção desejada: \n''1 -Consultar Todas as Peças \n''2 -Consultar Peças por Código \n''3 -Consultar Peças por Fabricante \n''4 -Retornar \n>>'))if consultP == 1:print('\nConsultar todas as peças')for pecas in controleEstoques: #seleciona cada dicionário (pecas) da lista controleEstoquesfor key,value in pecas.items(): #seleciona cada conjunto chave/valor do dicionárioprint('{} : {}'.format(key,value))elif consultP == 2:print('\nConsultar peças por código ')entrada = int(input('Digite o código da peça: '))for peca in controleEstoques:if (peca['código'] == entrada):for key,value in peca.items():print('{} : {}'.format(key,value))elif consultP == 3:print('\nConsultar por Fabricante ')entrada = input('Digite o fabricante da peca: ')for peca in controleEstoques:if (peca['fabricante'] == entrada):for key,value in peca.items():
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.19print('{} : {}'.format(key,value))elif consultP == 4:breakelse:print('Opção inválida. Tente novamente!')continueexcept ValueError:print('Esse ID não exite. Tente novamente!')#Removendo a Peçadef removerPeca():print('\n* Removendo a Peça * ')entrada = int(input('\nDigite o código da peça: '))for peca in controleEstoques:if (peca['código'] == entrada):controleEstoques.remove(peca)#MAINprint('Bem-vindo ao Controle de Estoque da Bicicletaria da Stéfany Maria Cavalcante Brandão') #identificador pessoalid = 0while True:try:opcao = int(input('\nEscolha a opção desejada: \n''1 -Cadastrar Peça \n''2 -Consultar Peça \n''3 -Remover Peça \n''4 -Sair \n>>'))if opcao == 1:id += 1cadastrarPeca(id)elif opcao == 2:consultarPeca()elif opcao == 3:removerPeca()elif opcao == 4:print('Encerrando o programa...')breakelse:print('Opção inválida. Digite novamente: \n')continueexcept ValueError:print('Digite uma das opções disponíveis: \n')
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.20Saída do Console(FORMATO IMAGEMPRINT DA TELA)
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.21
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.22
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.23
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.24
image/svg+xmlCaderno de RespostasdaAtividade Prática de Lógica de Programação e Algoritmos.25